package com.bifang.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.Map;
import lombok.Data;

@Data
public class OplogInfo extends BaseVO {
    @ApiModelProperty(notes = "日志id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long oplogId;

    @ApiModelProperty(value = "工作流中审核类型 start 开始启动节点  ing 审核中节点 end 审核结束节点")
    private String auType;

    @ApiModelProperty(value = "是否需要审核 0 不需要 1需要")
    private String auditFlag;

    @ApiModelProperty(value = "是否允许回退 0 否 1 是")
    private String rollbackFlag;

    @ApiModelProperty(value = "是否记录日志 0 否 1 是")
    private String logFlag;

    @ApiModelProperty(value = "操纵期控制规则")
    private String operating;

    @ApiModelProperty(value = "所属期id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long periodSameId;

    @ApiModelProperty(value = "业务年月")
    private Integer dateYm;

    @ApiModelProperty(value = "流程节点定义参数id")
    private String flowNodeId;

    @ApiModelProperty(value = "任务实例id")
    private String executionId;

    @ApiModelProperty(value = "流程定义id")
    private String procDefId;

    @ApiModelProperty(value = "下一节点签收人id")
    private String assigneeId;

    @ApiModelProperty(value = "下一节点签收人类型 1个人 2组织")
    private String assigneeType;

    @ApiModelProperty(value = "下一节点签收人用户id")
    private String assigneeUserId;

    @ApiModelProperty(value = "当前签收人id")
    private String curAssigneeId;

    @ApiModelProperty(value = "当前签收人类型 1个人 2组织")
    private String curAssigneeType;

    @ApiModelProperty(value = "当前签收人用户id")
    private String curAssigneeUserId;

    @ApiModelProperty(value = "是否自动审核 0 否 1 是")
    private String automaticFlag;

    @ApiModelProperty(value = "表单key")
    private String formKey;

    @ApiModelProperty(value = "节点id")
    private String actId;

    @ApiModelProperty(value = "流程节点名称")
    private String actName;

    @ApiModelProperty(value = "审核状态 0 未审核 1 审核通过 2 审核不通过 3 驳回")
    private String authStatus;

    @ApiModelProperty(value = "审核说明")
    private String authRemarks;

    @ApiModelProperty(value = "审核人")
    private String authUserId;

    @ApiModelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date authTime;

    @ApiModelProperty(value = "业务类型")
    private String operationType;

    @ApiModelProperty(value = "业务名称")
    private String operationName;

    @ApiModelProperty(value = "是否在日志切面更新数据，true 在oplogAspect更新 false 在workflowAspect更新")
    private boolean updateFlag = true;

    @ApiModelProperty(value = "节点实例id")
    private String taskId;

    @ApiModelProperty(value = "流程参数")
    private Map<String, Object> workflowParams;

    @ApiModelProperty(value = "请求参数")
    private String auditVO;

    @ApiModelProperty(value = "申请人类型")
    private String applicantType;

    @ApiModelProperty(value = "申请人id")
    private String applicantId;

    @ApiModelProperty(value = "申请人名称")
    private String applicantName;

    @ApiModelProperty(value = "审批意见类型")
    private String commentType;

    @ApiModelProperty(value = "流程实例ID 一个流程实例不管有多少条分支实例，这个ID都是一致的")
    private String procInstId;

    @ApiModelProperty(value = "审核流转组织id")
    private String auOrgId;

    @ApiModelProperty(value = "审核流转人员id")
    private String auUserId;

    @ApiModelProperty(value = "审核流转角色id")
    private String auRoleId;

    @ApiModelProperty(value = "审核流转角色id")
    private String auGroupId;
}
